home *** CD-ROM | disk | FTP | other *** search
/ Gigantic Games 2 / Gigantic Games 2.iso / pc / _m_ / madgic / manual < prev    next >
Text File  |  1994-12-23  |  33KB  |  884 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                                  The MADgic Core
  7.                              Core War for the Amiga
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                               ©1992 Mark A. Durham
  16.      Table of Contents
  17.  
  18.           Introduction                                      3
  19.           A Brief History                                   4
  20.           Description                                       6
  21.           Quick Start                                       8
  22.           Redcode                                           12
  23.           ASR                                               26
  24.           MARS                                              29
  25.           Menus                                             32
  26.  
  27.  
  28.  
  29.  
  30.  
  31.                                           2
  32.      Introduction
  33.  
  34.           Welcome to The MADgic Core, Core War for the Amiga.  Core
  35.           War, dubbed "the Programmer's Game of Choice", is an
  36.           exciting dual of survival between programs within your
  37.           computer.  The MADgic Core brings you all of the tools
  38.           necessary to do combat.
  39.  
  40.           This manual will provide you with a basic understanding (or
  41.           reminder) of Redcode assembly language programming as well
  42.           as a complete description and explanation of the use of the
  43.           Redcode assembler, MARS executive program, and tournament
  44.           manager.
  45.  
  46.  
  47.                                           3
  48.      A Brief History
  49.  
  50.  
  51.           Core War was first defined by D. G. Jones and A. K. Dewdney
  52.           of the Department of Computer Science at the University of
  53.           Western Ontario in March of 1984 in their "Core War
  54.           Guidelines".  Core War was introduced to a larger public via
  55.           Dewdney's regular columns in Scientific American, "Computer
  56.           Recreations", starting in May of 1984, and a collection of
  57.           those columns (and others) in Dewdney's book - The Armchair
  58.           Universe.
  59.  
  60.  
  61.  
  62.  
  63.                                           4
  64.           Since that time, Core War has been in the hands of The
  65.           International Core War Society.  The ICWS has produced two
  66.           standards over the years: ICWS'86 and ICWS'88.  Neither
  67.           varies too far from the original document, nor are they much
  68.           different from each other.  This is a partial testament to
  69.           the soundness of the careful initial thought and effort that
  70.           went into the project as well as the difficulties of
  71.           agreeing on new ideas.
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.                                           5
  80.      Description
  81.  
  82.           Core War is a game which combines programming skills and
  83.           strategic thinking.  The object is very simple: devise and
  84.           implement a program more capable of surviving and more
  85.           capable of killing than your opponent's.  It is much like
  86.           deciding on an opening game, middle game, and end game in
  87.           chess and irrevocably committing robots to play the game
  88.           that way for you.  The robots won't make any mistakes, but
  89.           if your strategy was wrong, you lose.
  90.  
  91.           Note that although Core War encompasses much of Artificial
  92.           Life and computer virus theory, there is absolutely no
  93.  
  94.  
  95.                                           6
  96.           danger to your computer or anyone else's computer from Core
  97.           War.  The MADgic Core is a completely contained, stable
  98.           environment.  You quit, and it is gone.
  99.  
  100.           Core War consists of two parts: the language and the
  101.           simulator.  The language is known as Redcode.  It is an
  102.           assembly language and is described in full in the following
  103.           section.  The simulator is known as MARS (for Memory Array
  104.           Redcode Simulator).  The MADgic Core consists of ASR, a
  105.           symbolic Redcode assembler, MARS and other simulators, and a
  106.           collection of Redcode programs from previous ICWS
  107.           tournaments.  Also included is a tournament manager
  108.           program.
  109.  
  110.  
  111.                                           7
  112.      Quick Start
  113.  
  114.           This section describes the basics of how to write, assemble,
  115.           and run Redcode programs.
  116.  
  117.           Insert your copy of The MADgic Core disk into a disk drive.
  118.           Assuming you still have the Notepad utility on your Workbench
  119.           disk, double-click on the IMP.s icon.   This will open up a
  120.           Notepad note.  If you do not have the Notepad utility on your
  121.           Workbench disk, you can view the contents of the file with any
  122.           standard text editor or word processor.
  123.  
  124.  
  125.  
  126.  
  127.                                           8
  128.  
  129.           The note is actually a Redcode source file for a program called
  130.           IMP.   The appendix ".s" is necessary on all source files, hence
  131.           this note is named "IMP.s".  You do not need to make any changes
  132.           to this file, so just close the Notepad window for now.
  133.  
  134.           Select the IMP.s icon.   While the IMP.s icon is selected, shift
  135.           double-click on the ASR icon.  A window will open up and a
  136.           question will be displayed.  Answer the question by typing a 'Y'
  137.           followed by <RETURN>.  A listing of the file will be displayed in
  138.           the window followed by a symbol table.
  139.  
  140.  
  141.  
  142.  
  143.                                           9
  144.           A request to hit the <RETURN> key is the last thing in the
  145.           window.   When you have finished looking at the window, hit
  146.           <RETURN>.   The window disappears.
  147.  
  148.           Double-click on the MARS icon.   A blank and borderless window
  149.           will open in a new screen.  A requester will appear.  Select "OK"
  150.           and the requester will disappear.
  151.  
  152.           Select "Load" from the "CORE" menu.   A requester will appear.
  153.           Select the left uppermost text gadget and type "IMP".  Select the
  154.           left lowermost text gadget and type "IMP".   Select "OK" and the
  155.           requester disappears and the programs are loaded.
  156.  
  157.  
  158.  
  159.                                           10
  160.           Select "Go" from the "Control" menu.   You should see an
  161.           advancing white square lead by a light blue square on the top
  162.           half of the screen and an advancing black square lead by a dark
  163.           blue square on the bottom half of the screen.
  164.  
  165.           After a while, select "Stop" from the "Control" menu.  Next,
  166.           select "Close" from the "Core" menu.  Congratulations!  You have
  167.           successfully assembled and run a Core War program!
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.                                           11
  176.      Redcode
  177.  
  178.           Redcode is the language of Core War.  Redcode is an assembly
  179.           language.  This means that each single statement in Redcode
  180.           will be assembled into a single machine language
  181.           instruction.  Because there is no Core War machine as of
  182.           yet, we use a simulator to run the machine code instead.
  183.  
  184.           There are eleven types of machine instruction.  Each of
  185.           these types has a corresponding three-letter opcode in
  186.           Redcode.  These opcodes are: DATMOVADDSUBCMPJMP,
  187.           JMZJMNDJNSLT, and SPL.  These opcodes are meant to be
  188.           indicative of what the instruction will do.  DAT is storage
  189.  
  190.  
  191.                                           12
  192.           for data, MOV moves data, ADD and SUB add and subtract data,
  193.           etc.  These opcodes will be explored further below.
  194.  
  195.           Each opcode can be followed by one operand or two operands
  196.           seperated by a comma.  Operands are merely that part of an
  197.           instruction which holds the data operated on by the opcode,
  198.           or tells the opcode where to find the data.  We usually
  199.           indicate generic operands as A and B.
  200.  
  201.           Operands can be divided up into two seperate parts: the mode
  202.           indicator and the address.  The mode indicators are for
  203.           immediate, the # (octothorpe), for direct, _ (space) or $
  204.           (dollar sign), for indirect, @ (commercial 'at'), and lastly
  205.  
  206.  
  207.                                           13
  208.           for pre-decrement indirect, < (left angle bracket).  The
  209.           mode indicator tells the opcode whether the address is data
  210.           (immediate), an offset to the data (direct), an offset to an
  211.           offset to the data (indirect), or an offset to one more than
  212.           the offset to the data (pre-decrement indirect).
  213.  
  214.           The address of a Redcode instruction is special.  All
  215.           addresses in Core War are relative to the currently
  216.           executing instruction and modulo the memory size of our Core
  217.           War machine.  This means that if the memory size of our
  218.           machine is 8000, an address of -2 is really 7998; an address
  219.           of 9256 is really 1256.
  220.  
  221.  
  222.  
  223.                                           14
  224.  
  225.           Fortunately, ASR is a symbolic assembler.  What this means
  226.           is that most of the time you will not have to bother writing
  227.           addresses as numbers.  Each statement of interest to you may
  228.           be proceeded with a label.  A label may be any word other
  229.           than the opcodes and any other labels.
  230.  
  231.           Lastly, there are things you can write in Redcode which do
  232.           not have a direct relationship to the machine instructions.
  233.           These include comments and pseudo-ops, opcodes which
  234.           instruct the assembler to do something rather than produce a
  235.           machine instruction.
  236.  
  237.  
  238.  
  239.                                           15
  240.           In order to better understand Redcode, it is best to look
  241.           first at a few Redcode programs.  The smallest useful
  242.           program is Imp.  Here we have an expanded version to
  243.           demonstrate all of the important aspects of Redcode.
  244.  
  245.  
  246.           ; Imp.s
  247.           ; by A. K. Dewdney
  248.           ;
  249.           Imp       MOV       Imp,      Imp+1     ; That's all!
  250.                     END
  251.  
  252.  
  253.  
  254.                                           16
  255.  
  256.           The lines which begin with a semicolon are comment lines.
  257.           These lines mean nothing to the Redcode assembler, so they
  258.           are ignored.  You can use comments to keep track of who
  259.           wrote a program, when it was written, what kind of algorithm
  260.           it implements, etc.
  261.  
  262.           There is only one real instruction line in the program.  It
  263.           starts with the label Imp.  The opcode is MOV.  Both the A
  264.           and B operands are of direct mode.  You will note that this
  265.           instruction is followed by a semicolon and another comment.
  266.  
  267.  
  268.  
  269.  
  270.                                           17
  271.           Of interest is the fact that in the A address is the Imp
  272.           label again.  The Imp label is also in the B address along
  273.           with a plus sign and a one.  Because the offset from this
  274.           instruction to this instruction is zero, the statement could
  275.           have been written much more simply as MOV 0, 1.
  276.  
  277.           Finally, the pseudo-op END instructs the assembler that we
  278.           are at the logical end of this file and it may stop
  279.           assembling now.  The only other pseudo-op of interest is
  280.           EQU.  These pseudo-ops, as well as the opcodes, are
  281.           discussed in greater detail below.
  282.  
  283.  
  284.  
  285.  
  286.                                           18
  287.      DAT A B
  288.           This instruction is used for storing data.  However, upon
  289.           trying to execute a DAT instruction, the current task is
  290.           stopped and removed from the queue.  When all of one
  291.           player's tasks have been stopped and removed from the queue,
  292.           that player has lost.
  293.  
  294.      MOV A B
  295.           If the A-mode is immediate, the A-value is placed in the B-
  296.           operand]0m of the memory location specified by the B-operand.
  297.           Otherwise, the entire statement referred to by the A-operand
  298.           is moved to the address specified by the B-operand.
  299.  
  300.  
  301.  
  302.                                           19
  303.  
  304.      ADD A B
  305.           If the A-mode is immediate, the A-value is added to the B-
  306.           operand of the memory location specified by the B-operand.
  307.           Otherwise, both operands are added: the A-operand is added
  308.           to the A-operand of the memory location specified by the B-
  309.           operand]0m and the B-operand is added to the B-operand of the
  310.           same memory location.
  311.  
  312.      SUB A B
  313.           SUB is just like ADD except the operands are subtracted
  314.           instead of added.
  315.  
  316.  
  317.  
  318.                                           20
  319.  
  320.      JMP A B
  321.           This task will continue processing at the memory address
  322.           specified by the A-operand, instead of the next statement as
  323.           usual.
  324.  
  325.  
  326.      JMZ A B
  327.           If the B-operand evaluates to zero, a jump will occur just
  328.           as in JMP A B, otherwise the task will continue with the
  329.           next statement as usual.
  330.  
  331.  
  332.  
  333.  
  334.                                           21
  335.  
  336.      JMN A B
  337.           If the B-operand does not evaluate to zero, a jump will
  338.           occur just as in JMP A B, otherwise the task will continue
  339.           with the next statement as usual.
  340.  
  341.      CMP A B
  342.           If the A-mode is immediate, the A-value is compared to the
  343.           evaluation of the B-operand.  Otherwise, the entire
  344.           statement referenced by the A-operand is compared to the
  345.           entire statement referenced by the B-operand.  If the
  346.           comparison is equivalent, the next statement is skipped.
  347.  
  348.  
  349.  
  350.                                           22
  351.      SLT A B
  352.           If the A-mode is immediate, the A-value is compared to the
  353.           B-operand specified by the B-operand.  Otherwise, the B-
  354.           operand specified by the A-operand is compared to the B-
  355.           operand specified by the B-operand.  If the comparison is
  356.           less than, the next instruction is skipped.  Note that
  357.           nothing is less than zero.
  358.  
  359.      DJN A B
  360.           The value referenced by the B-operand is decremented and
  361.           compared to zero.  If it is not zero, a jump is taken just
  362.           as in JMP A B.
  363.  
  364.  
  365.  
  366.                                           23
  367.      SPL A B
  368.           The task starting at the address specified by the A-operand
  369.           is added to the task queue.  Note that this new task is
  370.           placed between the current task and the next task.  Also
  371.           note that all other tasks will execute once before this task
  372.           will execute for the first time.
  373.  
  374.      EQU A
  375.           EQU is a pseudo-op which associates everything to the right
  376.           of itself with the label of the left of itself.  So the
  377.           result of the statement X EQU A is the same as replacing
  378.           every occurence of X with the text A.
  379.  
  380.  
  381.  
  382.                                           24
  383.      END A
  384.           END is a pseudo-op which indicates the last logical line of
  385.           Redcode.  Additionally, if there is an operand it indicates
  386.           which statement is the first to be executed.  If there is no
  387.           operand, execution will start with the first statement.
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.                                           25
  399.      ASR
  400.  
  401.           ASR, the assembler, can be started from either the CLI or
  402.           the Workbench.  The assembler accepts as a source file any
  403.           plain ASCII text file such as that produced by the Notepad
  404.           (with Global Fonts), a text editor, or a word processor
  405.           (again, when saved as plain ASCII).  The name of the source
  406.           file must end with a ".s" in order for ASR to recognize it.
  407.           There are many example source files presented on the disk.
  408.  
  409.           To invoke ASR from the CLI, type "ASR" followed by the name
  410.           of the source file.  The name you type after "ASR" need not
  411.           have the ".s" appended to it, as in "ASR IMP", but ASR will
  412.  
  413.  
  414.                                           26
  415.           still look for a filename ending in ".s"; "IMP.s" in this
  416.           example.
  417.  
  418.           If you want to list the assembler output from the CLI, place
  419.           a " -l " (a minus sign followed by a lowercase L) between
  420.           "ASR" and the name of your source file.  If you want to send
  421.           the listing to the printer, type " >prt: " just after "ASR"
  422.           and before " -l ".  If you want to send the listing to
  423.           another file, replace "prt:" with the name of your list file
  424.           in the example above.
  425.  
  426.  
  427.  
  428.  
  429.  
  430.                                           27
  431.           To invoke ASR from the Workbench, select the icon of the
  432.           source file you want to assemble and shift double-click on
  433.           the ASR icon while the source file icon is still selected.
  434.           If you want to list the assembler output to the window, type
  435.           "Y" followed by the <RETURN> key.
  436.  
  437.           If you want to list the assembler output to the printer,
  438.           type "P" followed by the <RETURN> key.  If you do not want
  439.           to list the file, type "N" followed by the <RETURN> key.  In
  440.           any case, you will need to hit the <RETURN> key after the
  441.           assembly is complete in order for the window to close.
  442.  
  443.  
  444.  
  445.  
  446.                                           28
  447.      MARS
  448.  
  449.           MARS can be started from either the CLI or the Workbench.
  450.           To start MARS from the CLI, type "MARS".  Any parameters
  451.           will be ignored.
  452.  
  453.           To start MARS from the Workbench, double-click on the MARS
  454.           icon.  Alternatively, select one or two files, and shift
  455.           double-click on the MARS icon while the file(s) are still
  456.           selected.  Any selected files will still need to be loaded,
  457.           but the file name(s) will be already in the load requester
  458.           text gadget(s).
  459.  
  460.  
  461.  
  462.                                           29
  463.  
  464.           Default core size, maximum number of tasks, maximum number
  465.           of cycles, colors, and version can all be set from the
  466.           Workbench.  Select the MARS icon and select Get Info from
  467.           the Workbench menu.  In the Tool Types, you will see these
  468.           options.
  469.  
  470.  
  471.           Add or change Core Size= to any of the menu choices.  Tasks=
  472.           can be any number, as well as Cycles=.  Version= should be
  473.           either 86 or 88.
  474.  
  475.  
  476.  
  477.  
  478.                                           30
  479.           Color= sets all the colors.  They are listed as eight sets
  480.           of three hexidecimal numbers (0-F) seperated by vertical
  481.           bars (|).  Each number represents one fifteenth of a percent
  482.           of red, green, or blue in that order.  The order is
  483.           background, MOV AMOV B, executing A, executing BDAT A,
  484.           DAT B, and SPL.
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.                                           31
  495.      Menus
  496.  
  497.           This is a reference section for the menu items you will find
  498.           in MARS.
  499.  
  500.      Core
  501.           The Core menu is available whenever there are no requesters
  502.           open in the MARS window and there are no battles currently
  503.           running.
  504.  
  505.           Size
  506.                The Size item has subitems of 2000, 4000, 8000,
  507.                8192, 16000, 32000, 64000, and 128000.   Each of
  508.  
  509.  
  510.                                           32
  511.                these subitems selects a core size.  Not all core
  512.                sizes may be available to you.  The more memory
  513.                you have, the larger the core size you can
  514.                accomodate.
  515.  
  516.                The arrow indicates which core size you have
  517.                selected.  Just because you are able to select a
  518.                core size does not mean that you can actually run
  519.                programs in a core of that size.  In the event you
  520.                do not have enough memory for a core of your
  521.                selected size, a requester will appear with "Not
  522.                Enough Memory" when you try to load your programs.
  523.  
  524.  
  525.  
  526.                                           33
  527.           Load
  528.                The Load item brings up a requester with two text
  529.                gadgets on the left and two integer gadgets on the
  530.                right.
  531.  
  532.  
  533.                Type the names of the programs you want to load
  534.                into the text gadgets on the left and type the
  535.                locations to load the programs to in the adjacent
  536.                integer gadgets on the right.  Then select "OK".
  537.                If you did not intend to bring up the load
  538.                requester, then select "Cancel".
  539.  
  540.  
  541.  
  542.                                           34
  543.                Alternatively, you can specify which file to load
  544.                by clicking on the "A" or "B" gadget for Player A
  545.                or Player B respectively.  Clicking on either of
  546.                these gadgets brings up a file requester.
  547.  
  548.                You can specify what volume by volume name,
  549.                assigned name, or device.  You can then enter
  550.                directories by clicking on the appropriate name.
  551.                "Parent" will take you up to the parent directory.
  552.  
  553.                You can change the extension filter by double-
  554.                clicking on "Filter", or just turn it on/off with
  555.                a single click.  The default extension filter is
  556.  
  557.  
  558.                                           35
  559.                ".o" since MARS can load only those files which
  560.                end in ".o".
  561.  
  562.                The load requester can be brought up at any time
  563.                by holding down the right Amiga key and the L key
  564.                at the same time.  You must load in programs
  565.                before you can access the "Control", "Trace", or
  566.                "Memory" menus.
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.                                           36
  575.           Max Cycles
  576.                The Max Cycles item brings up a requester with an
  577.                integer gadget.  Select the integer gadget and
  578.                type in the maximum number of cycles you want
  579.                executed per side before declaring a draw, then
  580.                select "OK".  If you do not want to change the
  581.                maximum number of cycles from that originally
  582.                displayed in the requester, select "Cancel".
  583.  
  584.           Max Tasks
  585.                The Max Tasks item brings up a requester with an
  586.                integer gadget.  Select the integer gadget and
  587.                type in the maximum number of tasks you want to
  588.  
  589.  
  590.                                           37
  591.                allow per side, then select "OK".  If you do not
  592.                want to change the maximum number of tasks from
  593.                that displayed in the requester, select "Cancel".
  594.  
  595.           Color
  596.                The Color item brings up a requester with several
  597.                gadgets in it.  Select the item for which you wish to
  598.                change the color, either player A, player BMOV AMOV
  599.                B, DAT ADAT B, or SPL.   Then adjust the level of red
  600.                in that color by sliding the knob in the gadget next to
  601.                the "R".  Similarly, you can adjust the level of blue
  602.                or green by sliding the knob in the gadget next to the
  603.                "B" or the "G".
  604.  
  605.  
  606.                                           38
  607.                When you are finished with any item, select any other
  608.                item and adjust its colors in a like manner.  When you
  609.                are finished adjusting colors, select "OK" if you want
  610.                to use your new colors, or select "Cancel" if you want
  611.                to use the colors that were in the requester when you
  612.                first selected "Color".
  613.  
  614.           Version
  615.                You can select from running the ICWS'86 standard
  616.                version of Core War and the ICWS'88 version of
  617.                Core War.  Only ICWS'88 is described in this
  618.                document.
  619.  
  620.  
  621.  
  622.                                           39
  623.           Quit
  624.                The Quit item ceases any battles, closes all open
  625.                windows, and closes the screen.  You can also quit
  626.                at any time by holding down the right Amiga key
  627.                and typing "Q" at the same time.  You must restart
  628.                MARS in order to use any of the other items after
  629.                selecting "Quit".
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.                                           40
  639.      Control
  640.           The Control menu is only available if programs have been
  641.           successfully loaded into the core and no requesters are in
  642.           the MARS window.
  643.  
  644.           Stop
  645.                The Stop item is only available if there are
  646.                programs currently battling in the core.  Stop
  647.                ceases the current battle and enables the Core
  648.                menu.  Stop is also invoked whenever the right
  649.                Amiga key is held down along with the S key.
  650.  
  651.  
  652.  
  653.  
  654.                                           41
  655.           Step
  656.                 The Step item is only available if there are no
  657.                programs currently battling in core.  Step
  658.                executes the next instruction from each warrior.
  659.                Step is also invoked whenever the right Amiga key
  660.                is held down along with the T key.
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.                                           42
  671.           Continue
  672.                The Continue item is only available if there are
  673.                no programs currently battling in core.  Continue
  674.                starts execution of all warriors in core from the
  675.                next instruction of each warrior.  Continue is
  676.                also invoked whenever the right Amiga key is held
  677.                down along with the C key.
  678.  
  679.           Go
  680.                Go is just like Continue except it is more
  681.                psychologically satisfactory for starting battles.
  682.  
  683.  
  684.  
  685.  
  686.                                           43
  687.  
  688.      Trace
  689.           The Trace menu is only available if programs have been
  690.           successfully loaded into the core and no requesters are in
  691.           the MARS window.
  692.  
  693.           Open
  694.                The Open item has three subitems, "A", "B", and
  695.                "Both".  If you select "A", only program A will be
  696.                traced.  If you select "B", only program B will be
  697.                traced.  If you select "Both", then both program A
  698.                and program B will be traced.
  699.  
  700.  
  701.  
  702.                                           44
  703.                Upon selection, a window with the title "Trace
  704.                Window" appears.  The trace window can be moved
  705.                about, to the front and back, and sized.
  706.  
  707.                As instructions are executed by MARS, they appear
  708.                in the trace window.  Player A instructions appear
  709.                in white (assuming default colors) and Player B
  710.                instructions appear in black.  The absolute
  711.                address, the opcode, and the two operands are each
  712.                displayed.
  713.  
  714.           Close
  715.                The Close item closes the trace window.
  716.  
  717.  
  718.                                           45
  719.  
  720.           Address
  721.                The Address item has three subitems, "Relative",
  722.                "Negative", and "Absolute".  If Relative is
  723.                selected, addresses in operand fields will be
  724.                relative to the current instruction.
  725.  
  726.                If Negative is selected, addresses in operand
  727.                fields will be relative to the current
  728.                instruction, but addresses larger than half of the
  729.                core size are displayed as negative addresses.  If
  730.                Absolute is selected, addresses in operand fields
  731.                are displayed as absolute addresses.
  732.  
  733.  
  734.                                           46
  735.  
  736.      Memory
  737.           The Memory menu is only available if programs have been
  738.           successfully loaded into the core and no requesters are in
  739.           the MARS window.
  740.  
  741.           Open
  742.                The Open item opens the memory window.  The memory
  743.                window can be moved and sized.  It will display as
  744.                many lines as will fit completely in the window.
  745.  
  746.                The portion of memory currently displayed in the
  747.                memory window can be changed by sliding the knob
  748.  
  749.  
  750.                                           47
  751.                in the right hand gadget.  Sliding the knob up
  752.                moves toward memory location zero.  Sliding the
  753.                knob down moves toward memory location (Core Size
  754.                - 1).  The up-arrow gadget will move one memory
  755.                location closer to zero.   The down-arrow gadget
  756.                will move one memory location closer to (Core Size
  757.                - 1).
  758.  
  759.                Pointing at any point in the MARS window and
  760.                clicking the left mouse button will start the
  761.                memory display at that location.  The memory
  762.                window is not dynamically updated.  If you want to
  763.                be sure that what is displayed in the memory
  764.  
  765.  
  766.                                           48
  767.                window is what is currently in memory, make sure
  768.                that the current battle is stopped and then select
  769.                the sizing gadget of the memory window.  It is
  770.                unneccessary to actually change the size of the
  771.                memory window.
  772.  
  773.           Close
  774.                The Close item closes the memory window.
  775.  
  776.           Address
  777.                The Address item behaves exactly as the Address
  778.                item under the Trace menu does.
  779.  
  780.  
  781.  
  782.                                           49
  783.      Window
  784.           The Window Menu is available whenever there are no
  785.           requesters open in the MARS window.
  786.  
  787.           To Front
  788.                The To Front item moves the MARS window to the
  789.                front of the MARS screen.  Any window which is
  790.                also open in the MARS screen, such as the trace
  791.                window and/or the memory window, will temporarily
  792.                disappear behind the MARS window.
  793.  
  794.  
  795.  
  796.  
  797.  
  798.                                           50
  799.           To Back
  800.                The To Back item moves the MARS window to the back
  801.                of the MARS screen.  Any window which is also open
  802.                in the MARS screen, such as the trace window
  803.                and/or the memory window, will reappear from
  804.                behind the MARS window.
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.                                           51
  815.      Screen
  816.           The Screen menu is available whenever there are no
  817.           requesters open in the MARS window.
  818.  
  819.           To Front
  820.                The To Front item moves the MARS screen to the
  821.                front of the display.
  822.  
  823.           To Back
  824.                The To Back item moves the MARS screen to the back
  825.                of the display.
  826.  
  827.  
  828.  
  829.  
  830.                                           52
  831.